/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package exceptions;

/**
 *
 * @author Jailton
 */
public class SemanticoException extends Exception{

    public static final int ID_DUPLICADO = 0;
    public static final int ID_NAO_DECLARADO = 1;
    public static final int INCOMPATIBILIDADE_TIPOS = 2;

   private String id;
    private int erro;
    private int linha;

    public SemanticoException(String id, int erro, int linha) {
        this.id = id;
        this.erro = erro;
        this.linha = linha;
    }

    public SemanticoException(int erro, int linha) {
        this.erro = erro;
        this.linha = linha;
    }

    @Override
    public void printStackTrace() {
        switch(erro) {
            case ID_DUPLICADO:
            System.err.println("Identificador '" + id +"' duplicado na linha " + linha + ".");
            break;
            case ID_NAO_DECLARADO: 
            System.err.println("Identificador '" + id +"' nao declarado na linha " + linha + ".");
            break;
            case INCOMPATIBILIDADE_TIPOS: 
            System.err.println("Tipos incompativeis na linha " + linha + ".");
            break;
        }
    }
}
